iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
自我挑戰組

多人連線遊戲背後的原理與實作系列 第 10

Day 10 - 製作連線遊戲時會遇到的問題(實體插值與航位推算篇)

  • 分享至 

  • xImage
  •  

一. Frame Rate

在進到主題前,先跟各位講解一下甚麼是Frame Rate,又稱(影格率、幀率),它是用於測量顯示影格數的度量,而FPS為每秒顯示多少影格。

二. 實體插值

今天要來聊聊實體插值,從前幾天的介紹中我們了解到伺服器的運作原理,當今天伺服器連接了大量的玩家時,遊戲的更新率會有所不同,當今天每個玩家都不斷傳送大量的封包到伺服器時,在這過程可能就會用掉大量的CPU資源與網路頻寬。
發生這種狀況時可以用一種方法,就是讓遊戲世界以較低頻率的方式作更新,這樣可以減少封包的傳輸量,也能減少重複資訊的封包。但是使用這種方法時,客戶端用較高的frame rate去更新世界時,玩家本地端的電腦收到其他玩家的封包是相對稀少的資料,這可能會導致客戶端預測以外的物體運動變得非常的奇怪,這時候就可以使用實體插值或航位推算來解決。

三. 航位推算:

又稱(Dead Reckoning),它是複制計算的一種形式,讓電腦去作推算。最簡單的例子是假設你今天是一款賽車遊戲,一台開的很快的車子它不可能瞬間停在路上,又或是瞬間180度旋轉,頂多加速、減速或稍微左右轉,那麼電腦就可以用當下的資訊去做車子路徑的推算,之後再透過收到的封包去作調整,當然這取決於您的遊戲能預測到甚麼程度。

四. 結論:

今天在有大量封包要做傳輸的遊戲中,可透過降低世界的更新率來減少CPU與頻寬的負擔,而實體插值與航位推算可以用來解決低頻更新導致物體不連續運動的問題,如果你今天的遊戲越好預測也會越好去作處理。


上一篇
Day 09 - 製作連線遊戲時會遇到的問題(伺服器協調篇)
下一篇
Day 11 - 製作連線遊戲時會遇到的問題(延遲補償篇)
系列文
多人連線遊戲背後的原理與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言